package Management;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class LoginDao {
    /**
     * 对UserPojo建立链接，输入数据库名称
     * 将数据库的输入用户名，使用者名，账号和密码
     * 用sql语句判断处理，代表占位符
     * 对数据库进行填充
     * 判断填充值是第几个
     * 进入while循环
     * 更新UserPojo
     * 填充
     * @param username
     * @return
     * @throws SQLException
     */
    public List<UserPojo> findByUname(String username) throws SQLException {

            //2. 创建连接 localhost:1433;DatabaseName=数据库名
            Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
            //sql中的？代表占位符，  预处理执行器特有
            String sql = "select id,username,password from user_mst where username=?";
            PreparedStatement ps = conn.prepareStatement(sql);
            //填充第几个？
            ps.setString(1,username);
            // 3
            ArrayList<UserPojo> ulist = new ArrayList<>();
            ResultSet rs = ps.executeQuery();

            while (rs.next()) {
                //进入while循环
                UserPojo pojo = new UserPojo();
                //更新UserPojo
                ulist.add(pojo);
                //添加
                pojo.setId(rs.getInt(1));
                //填充第一列
                pojo.setUsername(rs.getString(2));
                //填充第二例
                pojo.setPassword(rs.getString(3));
                //填充第三列

                //   pojo.setSex(rs.getString(4));
                //   pojo.setDate(rs.getString(5));

            }
            conn.close();
            return ulist;
    }

    public int addUserInfo(String v1, String v2, String v3, String v4) throws SQLException {
        /**
         * 创建addUserInfo表连接
         * 将数据库的输入用户名，使用者名，账号和密码
         * 用sql语句判断处理，代表占位符
         * 对数据库进行填充
         * 填充数据
         * 定义rs
         * 返回rs
         */
        // 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有
        String sql = "insert into Teacher(tno,tname,tsex,cno) values(?, ?, ?, ?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        // 填充第几个？
        ps.setString(1, v1);
        // 填充第1个
        ps.setString(2, v2);
        // 填充第2个
        ps.setString(3, v3);
        // 填充第3个
        ps.setString(4, v4);
        // 填充第4个
       /* ps.setInt(5, v5);
        ps.setString(6, v6);
        ps.setInt(7, v7);*/

        // 3
        // exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
        int rs = ps.executeUpdate();
// 定义rs
        conn.close();
//结束
        return rs;
        //返回rs
    }

    public List<TeacherPojo> selectBySname(String tname) throws SQLException {
        /**
         * 创建链接
         * 将数据库的输入用户名，使用者名，账号和密码
         * 用sql语句判断处理，代表占位符
         * 对数据库进行填充
         * 与新表建立链接
         */

//2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select tno,tname,tsex,cno\n" +
                "from Teacher\n" +
                "where tname=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,tname);
        // 3
        ArrayList<TeacherPojo> slist = new ArrayList<>();
        //与新表链接
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            TeacherPojo pojo = new TeacherPojo();
            //更新
            slist.add(pojo);
            pojo.setTno(rs.getString(1));
//
            pojo.setTname(rs.getString(2));
//            pojo.setSdate(rs.getString(3));
            pojo.setTsex(rs.getString(3));
           /* pojo.setSgrade(rs.getInt(5));
            pojo.setCareer(rs.getString(6));*/
            pojo.setCno(rs.getString(4));
            System.out.println("教师号为："+rs.getString(1)+"  "
                    +"姓名为："+rs.getString(2)+"  "
//                    +"生日为："+rs.getString(3)+"  "
                    +"性别为："+rs.getString(4)+"  "
                    /*+"成绩为："+rs.getString(5)+"  "
                    +"专业为："+rs.getString(6)+"  "
                    +"班号为："+rs.getString(7));*/
                    +"课程号为："+rs.getString(4)+"  ");
        }
        conn.close();
        //结束
        return slist;
        //返回slist
    }
    }

